/*
给你一个正整数 n ，生成一个包含 1 到 n2 所有元素，且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
*/
#include<iostream>
#include<vector>
using namespace std;

//左闭右开 顺时针
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> Matrix(n,vector<int>(n,0));
        int loop = n/2;//循环次数
        int startx=0,starty = 0;
        int offset = 1;//边界缩减
        int count = 1;
        int i,j = 0;
        while(loop--)
        {
            for(j = starty;j<n-offset;j++)
            {
                Matrix[startx][j] = count++;
            }
            for(i = startx;i<n-offset;i++)
            {
                Matrix[i][j] = count++;
            }
            for(;j>starty;j--)
            {
                Matrix[i][j] = count++;
            }
            for(;i>startx;i--)
            {
                Matrix[i][j] = count++;
            }
            startx++;
            starty++;
            offset++;
        }
       return Matrix; 
    }
};